/* 
 * File:   makenl.cpp
 * Author: sergey
 *
 * Created on 13 Декабрь 2009 г., 16:22
 *
 * Данный файл создает библиотеку функций, в которой хранятся функции по
 * отрицаниям последнего аргумента. Создается она на существующей библиотеке.
 */

#include "DefineConfiguration.h"
#include "BooleanFunction.h"
#include "FullLibrary.h"
#include "LPLibrary.h"
#include "LibraryInterface.h"
#include "LPExtractorNL.h"
#include <iostream>
#include <sstream>
#include <string>

const UInt32 n = 3;
typedef LibraryInfo<n> CurLibInfo;

int main(int argc, char** argv) {
    std::ostringstream filename;
    LPExtractorNL<CurLibInfo> lplib;
    filename << LIBRARYDIRECTORIES << "/lpblibs/lplibrary_" << CurLibInfo::n << ".bin";
    lplib.load(filename.str());

    UInt32 c = 1;
    for(std::map<UInt64, UInt8>::iterator i = lplib.bfclass.begin(); i != lplib.bfclass.end(); i++, c++) {
        std::cout << std::dec << c << ' ' << std::hex << (i->first) << ' ' << std::dec<< (int)(i->second) << std::endl;
        lplib.putLPtoNL(i->first, i->second);
    }

    filename.str("");
    filename << LIBRARYDIRECTORIES << "/nllibs/nllibrary_" << CurLibInfo::n << ".bin";
    lplib.nllib.save(filename.str());
    
    return (0);
}

